// 第007个包：npm install axios -S
import axios from "axios";

import useUserStore from "@/store/modules/user.ts";

import { ElMessage } from "element-plus";

const request = axios.create({
  // 基础路径
  // baseURL: 'http://sph-api.atguigu.cn',
  baseURL: import.meta.env.VITE_APP_BASE_API,
  timeout: 5000,
});

// 添加请求拦截器
request.interceptors.request.use(
  // 请求回调函数
  (config) => {
    // console.log("请求成功:", config);
    const userStore = useUserStore();
    if (userStore.token) {
      // console.log('请求拦截器token:', userStore.token);
      // 写法一
      // config.headers["token"] = userStore.token;
      // 写法二
      config.headers.token = userStore.token;
    }
    return config;
  },
  // 请求回调函数
  (error) => {
    console.log("请求错误:", error);
    return Promise.reject(error);
  }
);

// 添加响应拦截器
request.interceptors.response.use(
  // 成功回调函数
  (response) => {
    // console.log("响应成功:", response);
    if (response.data.code != 200) {
      ElMessage.error(response.data.message);
    }
    return response.data;
  },
  // 失败回调函数
  (error) => {
    console.log("响应失败:", error);
    return Promise.reject(error);
  }
);

export default request;
